iT邦幫忙

2021 iThome 鐵人賽

DAY 19
0
  • 前言

    在某次跟同事的討論中聽到這個名詞,"A:你知道mqtt嗎? W:痾 我不知道 A:那需要去懂一下",這不是來懂一下了嗎?其實剛開始真的不知道協議什麼的,聽到都是一頭霧水,腦袋直接關機,不是postman按下去,然後有回應就好了,後來才發現根據不同情境、不同限制下,有不同適合的解決方案這件事

  • 重點紀錄

    • 所以什麼是MQTT?

      • 物聯網的通訊協定

      • 適應窄頻寬、低耗能的情況下,傳送與接受訊息

      • 使用 publish/subscribe 模式傳送資料

      • 角色:Publisher \ Subscriber \ Broker

        既然是通訊,就會有發布方、接收方、中間商,就跟我打給你,我是發布方、你是接收方一樣,當然還會有個中間商,以手機來說就是各大電信(ex. 中華電信)
        既然是協定,就會有Server 和 client ,server 負責處理需求、client 負責發送需求給server 處理

        在 MQTT 有三個角色 Publisher \ Subscriber \ Broker ,Server 扮演 Broker 角色,負責處理 Client 需求( Publisher & Subscriber ),進行發布訊息、接受訊息

      • 訊息和發送方式: Topic & Qos

    • 什麼是 publish/subscribe ?

      publish/subscribe 模式,簡單説 Subscriber 決定要訂閱的 topic ,往後有相關資訊,Broker 就會遞送資訊給Subscriber,而 Publisher 則是針對 topic 傳送指定訊息,給Broker 發布

      舉個例子,“喜歡我的影片,別忘記訂閱、按讚、開啟小鈴鐺,以後最新的資訊,你就會第一時間收到喔!(os: 但我就不想第一時間收到 ><)” ,每當你(Subscriber)在 YT 按下訂閱的時候,你就是跟 YT( Broker)説,以後這個頻道的上新片,都要跟我說,假設今天晚上六點 這個頻道(Publisher) 上了新片,就會同步送一個訊息跟 YT(Broker) 説 “我上新片囉!” ,YT(Broker) 就會因為你之前的訂閱,送推播到你的手機 “我上新片囉!”

    • 為什麼要適應 窄頻寬、低耗能 ?

      常聽到輕量、輕量,就不太知道什麼叫做輕量、為什麼要輕量,換個生活的例子,我們會說“哇!這個生乳捲的口感好輕盈”就大概是類似概念,在現實世界,什麼都需要錢,在開發世界,server 處理每一個行為,都需要耗費資源,因此我們通常會根據不同情境,選擇CP最佳的選擇
      回到這裏,為什麼要適應窄頻寬? 因為在物聯網的是世界中,我只是要下命令(“開燈”),讓裝置做出相對應的動作,不像是我看YT我還可以要求顏色、畫質等,相對來說單純簡單,因此只需要窄頻寬就可以,再多我也用不到(ps 我的理解)

      為什麼低耗能?每個裝置處理指令是需要耗費資源的(ex. 智能電燈要處理開燈指令),因此如果是屬於充電式的物聯網裝置,那麼低耗電就等於更長的使用時間

    • 什麼是 Qos ?

      Qos 我理解的是傳送品質,分為 0 \ 1 \ 2 數字越大,品質越好,品質來自是否確實遞送訊息

      • Qos 0 : 最多傳一次 (送出訊息後就不管了 適用於重要性不高、漏接也沒關係的情況)
      • Qos 1 :至少傳成功一次 (會確實讓 Broker 收到,但可能因網路訊號,有重複訊息的情況)
      • Qos 2 :確實傳送一次 (更嚴謹的傳送,多了回報已經發送訊息的環節)
  • 然後呢?

    • 方案不只是方案,需要去了解背後的WHY(為什麼這個方案適合?) WHAT(那方案要怎麼適用、有什麼顧慮)
    • 為什麼他是一個適合的方案,這個思辨很有趣,也是讓我有點樂在其中的原因

ref

iOS x IoT ( 2 ) - MQTT 簡介

murmur

最近工作地方,出現了一個神奇的東西,就是好好摸手工皂,以前都是洗手乳,洗完都會滑滑的、更可惡的是有人居然在空了之後補了洗碗精,真是天理不容(為什麼要假裝洗手乳),所以手工皂的出現,讓我的工作日常多了一些小確幸,終於手上可以不要是洗碗精的的味道!!


上一篇
過了一年,我更能享受其中了 謝謝你們
下一篇
我目前常用的思考框架
系列文
日常任務成長紀錄30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言